Draft Version Denotational Semantics for SSA Conversion
نویسندگان
چکیده
We present the first formal specification of the SSA form, an intermediate code representation language used in most modern compilers such as GCC or Intel CC, and of its conversion process from imperative languages. More specifically, we provide (1) a denotational semantics of the SSA, the Static Single Assignment form, (2) a collecting denotational semantics for a Turing-complete imperative language Imp, (3) a non-standard denotational semantics specifying the conversion of Imp to SSA and, most importantly, (4) the proof of the consistency of this transformation, showing that the structure of the memory states manipulated by imperative constructs is preserved in compilers’ middle ends that use the SSA form as control-flow data representation. Interestingly, as an unexpected theoretical byproduct of our conversion procedure, we offer a new proof of the reducibility of the RAM computing model to the domain of Kleene’s partial recursive functions, to which SSA is strongly related. These fundamental results ensure that the widely used SSA technology is sound. Our formal denotational framework further suggests that the SSA form could become a target of choice for other optimization technologies such as abstract interpretation or partial evaluation. Indeed, since the SSA form is languageindependent, the resulting optimizations would be automatically enabled for any source language supported by compilers such as GCC.
منابع مشابه
Draft Version In and Out of SSA: A Denotational Specification
We present non-standard denotational specifications of the SSA form and of its conversion processes from and to imperative programming languages. Thus, we provide a strong mathematical foundation for this intermediate code representation language used in modern compilers such as GCC or Intel CC. More specifically, we provide (1) a new functional approach to SSA, the Static Single Assignment for...
متن کاملIn and Out of SSA: A Denotational Specification
We present non-standard denotational specifications of the SSAform and of its conversion processes from and to imperative pro-gramming languages. Thus, we provide a strong mathematicalfoundation for this intermediate code representation language usedin modern compilers such as GCC or Intel CC.More specifically, we provide (1) a new functional approachto SSA, the Static S...
متن کاملA duality between LM-fuzzy possibility computations and their logical semantics
Let X be a dcpo and let L be a complete lattice. The family σL(X) of all Scott continuous mappings from X to L is a complete lattice under pointwise order, we call it the L-fuzzy Scott structure on X. Let E be a dcpo. A mapping g : σL(E) −> M is called an LM-fuzzy possibility valuation of E if it preserves arbitrary unions. Denote by πLM(E) the set of all LM-fuzzy possibility valuations of E. T...
متن کاملOn the Formal Semantics of the Cognitive Middleware AWDRAT
The purpose of this work is two fold: on one hand we want to formalize the behavior of critical components of the self generating and adapting cognitive middleware AWDRAT such that the formalism not only helps to understand the semantics and technical details of the middleware but also opens an opportunity to extend the middleware to support other complex application domains of cybersecurity; o...
متن کاملA Hybrid Denotational Semantics for Hybrid Systems – Extended Version
In this article, we present a model and a denotational semantics for hybrid systems. Our model is designed to be used for the verification of large, existing embedded applications. The discrete part is modeled by a program written in an extension of an imperative language and the continuous part is modeled by differential equations. We give a denotational semantics to the continuous system insp...
متن کامل